iT邦幫忙

2024 iThome 鐵人賽

DAY 10
0
自我挑戰組

從零開始:資安滲透初探系列 第 10

10-1: 資安滲透初探: 漏洞利用與獲取訪問權限

  • 分享至 

  • xImage
  •  

由於漏洞利用的部分會比較多,所以10會分成2個部分講解,
前面先做簡單的介紹,後面會有實際的操作!

漏洞利用介紹

  • 目標
    • 利用所收集的資訊以取得對目標的存取權。
    • 已完成資訊收集、掃描和漏洞分析。
  • 過程描述
    • 假設
      • 確認目標是Windows 10。
      • 發現未更新的舊版本Windows 10。
      • 發現3個開放端口及1個受過濾端口,其中1個端口上運行的軟體存在漏洞。
  • 漏洞利用
    • 使用漏洞資訊來對目標進行攻擊。
    • 漏洞利用意味著透過已知漏洞傳送名為payload的程序至目標。
  • Payload
    • Payload是攻擊後傳送的程序。
    • 通常允許攻擊者在目標系統上執行命令和瀏覽檔案系統。
    • 常見的Payload形式是shell,讓攻擊者可遠端操作目標。
  • 漏洞存在時的攻擊步驟
    1. 透過漏洞發送Payload至目標。
    2. Payload執行並指示目標機器連接至攻擊者(例如Kali Linux)。
    3. 攻擊者遠端執行命令並接收回應。
  • 沒有漏洞的情況下
    • 若目標系統已修補且安全,則必須使用社交工程等方法。
    • 透過偽裝的電子郵件將Payload傳送給目標。
    • 試圖誘騙目標使用者執行Payload。
  • 社交工程範例
    • 發送看似正常的電子郵件,附帶看似無害的文件。
    • 電子郵件地址可以偽造,使之看起來像是受信任的來源。
  • 其他方法
    • 透過USB裝置感染目標(風險較高,使用不多)。
  • 接下來的步驟
    • 探索另一個駭客常用的工具:Metasploit Framework。
    • 它包含大量現有的漏洞利用程式。
    • 學習如何使用和運行這些程式。

什麼是漏洞?

  • 漏洞的定義
    • 漏洞是軟體開發中的錯誤或漏洞,可能被攻擊者利用,使軟體行為異常。
    • 若程式碼中存在錯誤,這些錯誤可能被利用來攻擊系統,稱為可利用漏洞。
  • 漏洞的影響
    • 攻擊者可以利用漏洞將惡意程式(payload)植入目標系統,獲取系統控制權。
    • 常見攻擊手段是利用已知漏洞在系統中植入遠端命令執行的程式(shell)。
  • 漏洞命名與分類
    • 漏洞通常被賦予CVE(Common Vulnerabilities and Exposures)編號,並附上首次發現的年份。
    • 未被廠商修補的漏洞稱為「零日漏洞」(Zero Day),通常具有高危險性。
  • 零日漏洞的實例
    • 2017年,WannaCry勒索軟體利用了NSA開發的Eternal Blue漏洞,攻擊醫院和警察局。
    • 有些零日漏洞在被公開前已被攻擊者利用數月。
  • 非技術性漏洞
    • 漏洞不一定都是技術性的,也可以是人的疏失。
    • 例如,員工John喜歡在工作時搜索車輛圖片。
    • John收到一封來自他同事的電子郵件,內含車輛圖片,他不疑有他便開啟。
    • 實際上,該電子郵件是經過偽造的,車輛圖片伴隨著惡意程式在背景執行。
    • John的工作電腦被感染,可能危及整個公司的網路安全。
  • 攻擊的普遍方式
    • 多數駭客攻擊是透過社交工程來實現,而非依賴技術漏洞。
    • 人員往往是安全系統中的薄弱環節。

反向Shell與綁定Shell

  • Shell的定義與作用
    • Shell是我們用來訪問目標機器的工具,通過Shell,我們可以執行命令並控制目標系統。
    • Shell本質上是我們在漏洞利用後投放在機器上的有效載荷(Payload)。
  • 兩種Shell類型
    • 反向Shell(Reverse Shell)
      • 在攻擊過程中,目標機器嘗試連接回我們的Kali Linux機器。
      • 我們需要在Kali Linux機器上監聽某個端口的連入連接。
      • 一旦利用漏洞並投放反向Shell,目標機器將連接到我們監聽的端口,這樣我們便可以控制目標機器。
    • 綁定Shell(Bind Shell)
      • 在攻擊過程中,目標機器打開一個端口,等待我們的連接。
      • 在這種情況下,是目標機器在監聽端口,我們需要連接該端口才能控制目標機器。
  • 反向Shell與綁定Shell的差異
    • 綁定Shell可能會被防火牆阻止,因為許多防火牆規則會禁止目標機器打開隨意端口。
    • 反向Shell則較少受到此類限制,因為目標機器僅僅是嘗試連接我們,類似於訪問網站的過程。
    • 因此,在可能的情況下,反向Shell通常是更好的選擇。
  • Metasploit框架簡介
    • 我們即將學習Metasploit框架,它是我們用於漏洞利用的主要工具之一。
    • Metasploit的重要性不亞於Nmap,學習其基礎知識是很有必要的。
    • 雖然不難,但需要一定的練習來熟悉它的使用。

Metasploit框架結構

  • 概述
    • Metasploit是一個強大的滲透測試工具,提供了多種用於漏洞利用的模組。
    • 框架內的模組包括:exploits(漏洞利用)、payloads(有效載荷)、auxiliary modules(輔助模組)、encoders(編碼器)、evasion modules(規避模組)、nops(無操作指令)、post exploitation modules(後滲透模組)。
      08-1
  • 模組詳解
    1. Exploits(漏洞利用)
      • 用於針對系統或應用程式的特定漏洞執行命令序列。
      • 分為不同類型,如緩衝區溢出、代碼注入、Web應用程式漏洞等。
      • 在框架中按操作系統和服務類型分類。
    2. Auxiliary Modules(輔助模組)
      • 不執行有效載荷,用於執行掃描、模糊測試或拒絕服務攻擊等操作。
      • 常用於滲透測試的前兩個階段,用於指紋識別和漏洞掃描。
    3. Post Exploitation Modules(後滲透模組)
      • 用於在攻擊後收集或竊取目標設備上的信息,如文件、已保存的密碼、轉儲哈希值等。
      • 可用於權限提升或信息收集。
    4. Payloads(有效載荷)
      • 與漏洞利用一起傳送到目標機器的程式,用於控制該機器。
      • 包括單一有效載荷(singles)、階段器(stagers)、階段(stages)。
      • 常用的組合是反向TCP連接和meterpreter shell。
    5. Encoders(編碼器)
      • 幫助躲避防病毒軟體的檢測。
      • 通過編碼有效載荷,使其不易被檢測到。
    6. Evasion Modules(規避模組)
      • 用於繞過Windows Defender。
      • 最近更新的Windows Defender可能已知曉這些模組。
    7. Nops(無操作指令)
      • 給處理器的指令,指示其不執行任何操作。
      • 在緩衝區溢出中,用於在有效載荷執行前分配內存空間。

Msfconsole基本命令

  1. 啟動Metasploit Framework
    • 使用指令 msfconsole 啟動Metasploit框架。
    • 啟動後會顯示Metasploit的歡迎畫面和可用模組的數量。
      08-2
  2. 基本命令
    • help:顯示所有可用命令的幫助菜單。
    • lscdifconfig:可以在Metasploit中執行一些基本的終端命令。
  3. 列出模組
    • show payloads:列出所有可用的有效載荷。
    • show exploits:列出所有可用的漏洞利用模組。
    • 有效載荷和漏洞利用會按類型和目標系統分類,例如Windows、Linux、Android等。
  4. 使用模組
    • use <module>:選擇一個特定的漏洞利用模組。
    • 例如,使用 use exploit/windows/smb/ms06_040_netapi 選擇特定漏洞模組。
  5. 查看模組信息
    • show info:顯示有關選擇的漏洞利用模組的詳細信息。
    • 包括漏洞的描述和引用鏈接。
  6. 設置選項
    • show options:顯示模組需要設置的參數。
    • set <option> <value>:設置模組的參數。
      • RHOSTS:目標主機的IP地址。
      • LHOST:Kali Linux的IP地址,用於反向連接。
      • LPORT:本地端口,用於監聽傳入連接。
      • 例如,set RHOSTS 192.168.1.20
  7. 選擇有效載荷
    • show payloads:列出適用於選擇的漏洞模組的所有有效載荷。
    • set payload <payload>:設置特定的有效載荷。
  8. 顯示目標
    • show targets:列出所有適用於選擇的漏洞模組的目標。
    • set target <ID>:選擇特定目標。
  9. 執行漏洞利用
    • exploit:運行漏洞利用模組。
    • 如果設置正確,會對目標執行攻擊,並建立控制連接。

上一篇
09: 資安滲透初探: 漏洞分析
下一篇
10-2: 資安滲透初探: 漏洞利用與獲取訪問權限
系列文
從零開始:資安滲透初探30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言